package com.tanhua.model.vo;

import com.tanhua.model.mongo.Question;
import com.tanhua.model.mongo.Questionnaire;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author huangyuahan
 * @version 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionnaireVo {

    private String id;
    //问卷名
    private String name;
    //封面
    private String cover;
    //等级
    private String level;
    //星别
    private Integer star;
    //试题列表，每道题包含若干选项
    private List<QuestionVo> questions;

    private Integer isLock = 1;

    private String reportId;

    //匹配对应几级别的问卷和题目
    public List<Question> getQuestion(Questionnaire questionnaire, List<Question> questionList){
        List<Question> questionVos = new ArrayList<>();
        for (Question question : questionList) {
            if (question.getLevel().equals(questionnaire.getLevel())){
                //等级相同，把对应题目id放入list<ObjectId>
                questionVos.add(question);
            }
        }
        return questionVos;
    }

    public QuestionnaireVo init(Questionnaire questionnaire,ObjectId objectId){
        //id转为字符串
        QuestionnaireVo questionnaireVo = new QuestionnaireVo();
        BeanUtils.copyProperties(questionnaire,questionnaireVo);
        questionnaireVo.setId(questionnaire.getId().toHexString());
        //level转为文本
        Integer level = questionnaire.getLevel();
        switch (level){
            case 1:questionnaireVo.setLevel("初级");break;
            case 2:questionnaireVo.setLevel("中级");break;
            case 3:questionnaireVo.setLevel("高级");break;
            default:questionnaireVo.setLevel("初级");
        }
        //设置报告id
        if (objectId!=null){
            questionnaireVo.setReportId(objectId.toHexString());
        }
        return questionnaireVo;
    }
}
